home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Standards 1994 January / InfoMagic Standards - January 1994.iso / ccitt / 1988 / troff / 10_2_02.tro < prev    next >
Text File  |  1991-12-12  |  54KB  |  1,634 lines

  1. .rs
  2. .\" Troff code generated by TPS Convert from ITU Original Files
  3. .\"                 Not Copyright ( c) 1991 
  4. .\"
  5. .\" Assumes tbl, eqn, MS macros, and lots of luck.
  6. .TA 1c 2c 3c 4c 5c 6c 7c 8c
  7. .ds CH
  8. .ds CF
  9. .EQ
  10. delim @@
  11. .EN
  12. .nr LL 40.5P
  13. .nr ll 40.5P
  14. .nr HM 3P
  15. .nr FM 6P
  16. .nr PO 4P
  17. .nr PD 9p
  18. .po 4P
  19.  
  20. .rs
  21. \v | 5i'
  22. .sp 1P
  23. .LP
  24. D.3.8.2.1
  25.     \fID\*'etermination des \*'etats requis\fR 
  26. .sp 9p
  27. .RT
  28. .PP
  29. L'auteur d'un diagramme LDS dispose g\*'en\*'eralement d'une certaine
  30. latitude pour d\*'efinir les \*'etats d'un processus. Il peut avoir besoin 
  31. d'une 
  32. strat\*'egie qui lui permette d'identifier les \*'etats du processus et cette
  33. strat\*'egie peut \* | tre informelle ou formelle. Un jugement s\* | r 
  34. (que seule une 
  35. longue exp\*'erience permet d'acqu\*'erir) est n\*'ecessaire si l'on veut 
  36. \*'etablir des 
  37. diagrammes LDS tels que l'identification d'un trop grand nombre d'\*'etats 
  38. ne les complique pas inutilement ou qu'un nombre artificiellement r\*'eduit 
  39. d'\*'etats ne 
  40. les emp\* | che d'exploiter les avantages qu'offre le LDS. Avant que l'auteur 
  41. ne commence \*`a \*'etablir le diagramme, certaines \*'etapes pr\*'eliminaires 
  42. (\*'etudi\*'ees au \(sc\ D.3.2) doivent \* | tre achev\*'ees, par exemple: 
  43. .EF '%    Fascicule\ X.2\ \(em\ Rec.\ Z.100\ \(em\ Annexe\ D''
  44. .OF '''Fascicule\ X.2\ \(em\ Rec.\ Z.100\ \(em\ Annexe\ D    %'
  45. .RT
  46. .LP
  47.     \(em
  48.     la structuration du syst\*`eme en blocs fonctionnels;
  49. .LP
  50.     \(em
  51.     la repr\*'esentation d'un ou plusieurs processus LDS par bloc;
  52. .LP
  53.     \(em
  54.     le choix des signaux d'entr\*'ee et de sortie;
  55. .LP
  56.     \(em
  57.     l'utilisation des donn\*'ees dans le processus.
  58. .PP
  59. Tous les facteurs ci\(hydessus exercent un effet important dans la
  60. d\*'etermination des \*'etats de chaque processus. L'effet qu'exerce le 
  61. choix des 
  62. signaux d'entr\*'ee sur le nombre d'\*'etats d'un diagramme LDS est illustr\*'e 
  63. par les deux exemples de la figure\ D\(hy3.8.11. 
  64. .LP
  65. .rs
  66. .sp 34P
  67. .ad r
  68. \fBFigure D\(hy3.8.11, p. 1\fR 
  69. .sp 1P
  70. .RT
  71. .ad b
  72. .RT
  73. .LP
  74. .bp
  75. .sp 1P
  76. .LP
  77. D.3.8.2.2
  78.     \fIR\*'eduction du nombre des \*'etats\fR 
  79. .sp 9p
  80. .RT
  81. .PP
  82. Ayant appliqu\*'e une strat\*'egie pour l'identification des \*'etats d'un 
  83. processus, l'auteur d'un diagramme LDS estimera peut\(hy\* | tre qu'un 
  84. trop grand 
  85. nombre d'\*'etats ont \*'et\*'e utilis\*'es. Le nombre des \*'etats est 
  86. important car la 
  87. dimension et la complexit\*'e d'un diagramme LDS sont souvent \*'etroitement 
  88. li\*'ees \*`a ce nombre. Il existe certes des moyens qui permettent de 
  89. r\*'eduire le nombre des \*'etats mais le fait qu'un diagramme LDS soit 
  90. complexe n'est pas, en soi, une 
  91. raison justifiant sa modification; en effet, la complexit\*'e du diagramme peut
  92. \* | tre simplement due \*`a la complexit\*'e inh\*'erente au processus 
  93. d\*'efini. Le choix de l'ensemble d'\*'etats doit g\*'en\*'eralement offrir 
  94. le plus de clart\*'e possible \*`a la s\*'equence d'interactions entre 
  95. le processus et son environnement. Ce n'est 
  96. d'ordinaire pas en minimisant le nombre d'\*'etats que l'on obtient cette 
  97. clart\*'e. Le nombre de s\*'equences ind\*'ependantes trait\*'ees par un 
  98. processus exerce un effet multiplicateur sur le nombre d'\*'etats. Il est 
  99. donc souhaitable que les s\*'equences ind\*'ependantes des processus s\*'epar\*'es 
  100. soient trait\*'ees de fa\*,con \*`a r\*'eduire le 
  101. nombre d'\*'etats et \*`a obtenir une plus grande clart\*'e.
  102. .PP
  103. On peut r\*'eduire le nombre des \*'etats en effectuant la s\*'eparation des
  104. fonctions communes ou la fusion des \*'etats ou encore en recourant au 
  105. concept de service. Certaines structures de donn\*'ees peuvent \*'egalement 
  106. conduire \*`a une 
  107. r\*'eduction du nombre des \*'etats. Pour d'autres repr\*'esentations, 
  108. l'emploi des 
  109. macros peut \* | tre avantageux.
  110. .RT
  111. .sp 1P
  112. .LP
  113. D.3.8.2.3
  114.     \fIS\*'eparation des fonctions communes\fR 
  115. .sp 9p
  116. .RT
  117. .PP
  118. Lors de la mise en place d'un diagramme LDS, on peut constater que la d\*'efinition 
  119. d'un aspect particulier et r\*'ep\*'etitif d'un processus n\*'ecessite 
  120. la repr\*'esentation d'\*'etats r\*'ep\*'etitifs. La figure\ D\(hy3.8.12 
  121. repr\*'esente une partie 
  122. d'un diagramme LDS d\*'efinissant un processus de signalisation de ligne et
  123. illustrant la condition selon laquelle une tonalit\*'e de signalisation 
  124. de ligne doit \* | tre pr\*'esente pendant une certaine dur\*'ee avant 
  125. que l'on consid\*`ere que le signal de ligne a \*'et\*'e d\*'etect\*'e. 
  126. .PP
  127. Pour sp\*'ecifier cet aspect, il convient d'ins\*'erer un \*'etat interm\*'ediaire 
  128. entre les \*'etats aucun 
  129. \(ulsignal
  130. \(ulde
  131. \(ul
  132. ligne
  133. \(uln'est
  134. \(uld\*'etect\*'e  et conversation. Supposons
  135. que, dans un diagramme complet, une telle fonction commune doit \* | tre 
  136. r\*'ep\*'et\*'ee \*`a chaque point o\*`u le signal est d\*'etect\*'e. Une 
  137. autre solution consiste \*`a 
  138. d\*'efinir un processus s\*'epar\*'e qui est responsable du contr\* | le 
  139. de la tonalit\*'e de signalisation de ligne et de la d\*'etection des signaux 
  140. sur la base du temps de reconnaissance sp\*'ecifi\*'e. L'existence de ce 
  141. nouveau processus permettrait de 
  142. repr\*'esenter le diagramme de la figure D\(hy3.8.12 de la mani\*`ere indiqu\*'ee 
  143. dans la figure\ D\(hy3.8.13. (Dans un contexte donn\*'e, les figures peuvent 
  144. \* | tre rendues 
  145. \*'equivalentes moyennant l'introduction d'un nouveau signal
  146. signal
  147. \(ulde
  148. \(ulligne
  149. \(ulvalide.)
  150. .RT
  151. .PP
  152. Il convient de noter la l\*'eg\*`ere diff\*'erence entre le processus de 
  153. la figure\ D\(hy3.8.12 et les deux processus de la figure\ D\(hy3.8.13. 
  154. .PP
  155. Le processus de la figure D\(hy3.8.12 commence \*`a compter d\*`es r\*'eception 
  156. de\ T1 alors que le processus de traitement des appels [processus\ b) de 
  157. la 
  158. figure\ D\(hy3.8.13] commence \*`a compter d\*`es r\*'eception de
  159. signal
  160. \(ulde
  161. \(ul 
  162. ligne
  163. \(ulvalide qui est engendr\*'e
  164. et \*'emis \*`a la r\*'eception de\ T1 par le processus\ a) de la figure\ 
  165. D\(hy3.8.13. Il 
  166. s'ensuit que, dans le second cas, le comptage d\*'emarre apr\*`es T1\ +\ 
  167. temps de 
  168. g\*'en\*'eration, d'\*'emission et de r\*'eception du signal. En outre, 
  169. d'autres signaux 
  170. peuvent avoir \*'et\*'e mis dans la file d'attente pendant le temps n\*'ecessaire 
  171. \*`a la g\*'en\*'eration et \*`a l'\*'emission de signal 
  172. \(ulde
  173. \(ulligne
  174. \(ulvalide.
  175. .PP
  176. Une seconde particularit\*'e est que cette s\*'eparation d'une sous\(hyfonction 
  177. ne serait pas possible si le signal que doit recevoir la sous\(hyfonction 
  178. devait \* | tre re\*,cu \*'egalement par la fonction principale, un signal 
  179. \*'etant toujours 
  180. achemin\*'e vers un seul processus. Si, dans l'exemple, le m\* | me signal
  181. S
  182. \(uloff devait \* | tre re\*,cu dans un autre \*'etat o\*`u il n'est pas 
  183. besoin de 
  184. le valider pour le temps\ T1, il n'aurait pas \*'et\*'e possible de s\*'eparer 
  185. la 
  186. sous\(hyfonction de validation en un autre processus.
  187. .PP
  188. Les solutions qui font appel \*`a des processus distincts sont
  189. g\*'en\*'eralement utiles lorsque les signaux doivent \* | tre trait\*'es 
  190. ind\*'ependamment 
  191. des \*'etats dans le processus principal. Dans ce cas, les op\*'erations qui
  192. pr\*'ec\*`edent et qui suivent les processus peuvent traiter les s\*'equences
  193. d\*'etaill\*'ees et d\*'echarger un processus principal de tous les d\*'etails. 
  194. Ceci 
  195. engendre souvent une modularit\*'e utile permettant, par exemple, d'isoler les
  196. caract\*'eristiques particuli\*`eres des syst\*`emes de signalisation, 
  197. du processus 
  198. principal plus ax\*'e sur le service.
  199. .PP
  200. Une autre mani\*`ere de traiter le probl\*`eme consiste \*`a appliquer le
  201. concept de service, expliqu\*'e au \(sc\ D.5.3.
  202. .PP
  203. Une solution diff\*'erente du probl\*`eme consisterait \*`a employer la
  204. notation MACRO, comme indiqu\*'e \*`a la figure\ D\(hy3.3.1. Dans ce cas, 
  205. on obtient 
  206. pour le diagramme la compacit\*'e voulue sans modifier en rien la s\*'emantique 
  207. du 
  208. diagramme original. Il est en outre possible d'appeler la MACRO \*`a partir de
  209. plusieurs \*'etats si la logique du processus l'exige.
  210. .bp
  211. .RT
  212. .LP
  213. .rs
  214. .sp 32P
  215. .ad r
  216. \fBFigure D\(hy3.8.12, p. 2\fR 
  217. .sp 1P
  218. .RT
  219. .ad b
  220. .RT
  221. .LP
  222. .bp
  223. .LP
  224. .rs
  225. .sp 29P
  226. .ad r
  227. \fBFigure D\(hy3.8.13, p. 3\fR 
  228. .sp 1P
  229. .RT
  230. .ad b
  231. .RT
  232. .sp 1P
  233. .LP
  234. D.3.8.2.4
  235.     \fIFusion des \*'etats\fR 
  236. .sp 9p
  237. .RT
  238. .PP
  239. Si, dans un diagramme LDS, la destination future de deux \*'etats est la 
  240. m\* | me, on peut, ind\*'ependamment de leur \*'evolution ant\*'erieure, 
  241. effectuer la 
  242. fusion de ces deux \*'etats en un seul, sans affecter la logique du
  243. diagramme.
  244. .PP
  245. La figure D\(hy3.8.14 repr\*'esente une partie d'un diagramme LDS comportant 
  246. deux \*'etats dont le <<pass\*'e>> est diff\*'erent mais dont le <<futur>> 
  247. est identique. 
  248. Dans la figure\ D\(hy3.8.15, les deux \*'etats ont \*'et\*'e combin\*'es 
  249. en un seul. Il s'agit l\*`a d'un exemple relativement simple dans lequel 
  250. la r\*'eduction de la complexit\*'e est peu importante, mais cette m\* | me 
  251. technique peut \* | tre utilis\*'ee pour obtenir une plus grande simplification. 
  252. La s\*'emantique du LDS ne pr\*'evoit pas une 
  253. d\*'ecision cons\*'ecutive \*`a un \*'etat pour d\*'eterminer le <<pass\*'e>> 
  254. du processus 
  255. ant\*'erieurement \*`a cet \*'etat (c'est\(hy\*`a\(hydire de d\*'eterminer, 
  256. pour cet exemple, 
  257. si\ A6 ou\ B4 a \*'et\*'e \*'emis), \*`a moins que cette information n'ait 
  258. \*'et\*'e explicitement stock\*'ee avant l'entr\*'ee dans l'\*'etat. A 
  259. noter, que l'attribution d'un nom aux 
  260. donn\*'ees d'une entr\*'ee a pour effet de mettre la valeur en m\*'emoire.
  261. .PP
  262. Un \*'etat doit repr\*'esenter une situation logique du processus et il
  263. n'est donc pas souhaitable d'effectuer la fusion de situations logiques
  264. diff\*'erentes en un seul \*'etat.
  265. .PP
  266. Des pr\*'ecautions sont \*`a prendre si un diagramme fusionn\*'e doit \* | tre
  267. modifi\*'e ult\*'erieurement. L'usager devrait rechercher si la modification
  268. envisag\*'ee a ou non le m\* | me effet sur les diverses branches
  269. initiales.
  270. .bp
  271. .RT
  272. .LP
  273. .rs
  274. .sp 33P
  275. .ad r
  276. \fBFigures D\(hy3.8.14 et D\(hy3.8.15,\ \ \ C\* | TE\(hy\o"A\(ga"\(hyC\* | TE, 
  277. p. 4\fR 
  278. .sp 1P
  279. .RT
  280. .ad b
  281. .RT
  282. .sp 1P
  283. .LP
  284. D.3.8.3
  285.     \fIEntr\*'ees\fR 
  286. .sp 9p
  287. .RT
  288. .PP
  289. Le pr\*'esent \(sc D.3.8.3 a pour objet d'expliquer la notion d'entr\*'ee
  290. ainsi que l'utilisation des entr\*'ees dans des diagrammes LDS ne faisant pas
  291. appel \*`a la notion de mise en r\*'eserve. La notion de mise en r\*'eserve et
  292. l'utilisation de cette notion en m\* | me temps que la notion d'entr\*'ee font
  293. l'objet du \(sc\ D.3.8.4.
  294. .RT
  295. .sp 1P
  296. .LP
  297. D.3.8.3.1
  298.     \fIConsid\*'erations g\*'en\*'erales\fR 
  299. .sp 9p
  300. .RT
  301. .PP
  302. Un symbole d'entr\*'ee attach\*'e \*`a un \*'etat signifie que, si le signal 
  303. dont le nom figure dans le symbole d'entr\*'ee arrive pendant que le processus 
  304. est dans cet \*'etat, il faut interpr\*'eter la transition qui suit le 
  305. symbole d'entr\*'ee. Lorsqu'un signal a d\*'eclench\*'e l'interpr\*'etation 
  306. d'une transition, ce signal 
  307. n'existe plus et on dit qu'il a \*'et\*'e absorb\*'e.
  308. .PP
  309. Un signal peut \* | tre accompagn\*'e de donn\*'ees associ\*'ees. Par exemple, 
  310. un signal portant le nom <<chiffre>> sert non seulement \*`a d\*'eclencher 
  311. l'ex\*'ecution 
  312. d'une transition par le processus de r\*'eception mais encore \*`a v\*'ehiculer
  313. la valeur du chiffre (0\ \*`a\ 9), ces donn\*'ees pouvant \* | tre utilis\*'ees 
  314. par le 
  315. processus r\*'ecepteur.
  316. .PP
  317. En LDS/PR, l'instruction INPUT contient une liste d'identificateurs de 
  318. signaux. Les valeurs contenues dans les signaux sont indiqu\*'ees \*`a 
  319. l'aide 
  320. d'identificateurs de variables. Les identificateurs de variables doivent 
  321. \* | tre du type indiqu\*'e dans la d\*'efinition de signal, de sorte que 
  322. leur position est 
  323. tr\*`es importante. Ces identificateurs de variables sont plac\*'es entre
  324. parenth\*`eses et s\*'epar\*'es par des virgules (voir la figure\ D\(hy3.8.16). 
  325. Si une ou plusieurs valeurs de signal sont rejet\*'ees, les variables correspondantes 
  326. font d\*'efaut, ce qui est indiqu\*'e par deux ou plusieurs virgules cons\*'ecutives 
  327. (figure\ D\(hy3.8.17).
  328. .bp
  329. .RT
  330. .LP
  331. .rs
  332. .sp 15P
  333. .ad r
  334. \fBFigure D\(hy3.8.16 [T13.100] \ \ 
  335. (\*`a traiter comme tableau MEP), p. 6\fR 
  336. .sp 1P
  337. .RT
  338. .ad b
  339. .RT
  340. .LP
  341. .rs
  342. .sp 7P
  343. .ad r
  344. \fBFigure D\(hy3.8.17 [T14.100] \ \ 
  345. (\*`a traiter comme tableau MEP), p. 7\fR 
  346. .sp 1P
  347. .RT
  348. .ad b
  349. .RT
  350. .PP
  351. En LDS/GR, une entr\*'ee est repr\*'esent\*'ee \*`a l'aide d'un symbole
  352. d'entr\*'ee contenant la liste d'identificateurs de signaux et les identificateurs 
  353. de variables correspondants pour les valeurs achemin\*'ees. Pour pouvoir 
  354. \* | tre 
  355. communiqu\*'ees au processus, ces valeurs doivent \* | tre d\*'esign\*'ees 
  356. nomm\*'ement dans les symboles d'entr\*'ee, entre parenth\*`eses. 
  357. .PP
  358. On trouvera des exemples de r\*'eception de valeurs des entr\*'ees dans 
  359. les figures\ D\(hy3.8.18, D\(hy3.8.19 et D\(hy3.8.20. 
  360. .PP
  361. Les donn\*'ees auxquelles un nom est assign\*'e peuvent \* | tre utilis\*'ees
  362. par le processus r\*'ecepteur quand l'entr\*'ee est interpr\*'et\*'ee.
  363. .PP
  364. La figure D\(hy3.8.18 montre la r\*'eception du signal <<d\*'ecroch\*'e>>. 
  365. Le signal <<d\*'ecroch\*'e>> est accompagn\*'e de donn\*'ees associ\*'ees 
  366. (num\*'ero
  367. \(ulde
  368. \(ull'abonn\*'e) avec pour valeur\ 9269. Le signal
  369. peut \* | tre re\*,cu de trois mani\*`eres, comme indiqu\*'e en a) et\ 
  370. c) de la figure. 
  371. .PP
  372. La figure D\(hy3.8.19 montre comment envoyer et recevoir plusieurs
  373. valeurs en un seul signal. Chaque \*'el\*'ement doit \* | tre s\*'epar\*'e 
  374. du suivant par une virgule. La figure\ D\(hy3.8.20\ c) montre comment ignorer 
  375. les valeurs ind\*'esirables en laissant un blanc dans la liste de sortes. 
  376. .PP
  377. A noter que, dans le signal de sortie, il est impossible d'\*'ecrire des 
  378. expressions pour\ E1, E2 ou\ E3, alors que dans le signal d'entr\*'ee, 
  379. il faut 
  380. employer des variables pour recevoir les valeurs \*'emises.
  381. .PP
  382. Dans le LDS, il n'est pas n\*'ecessaire de dessiner des symboles d'entr\*'ee 
  383. pour repr\*'esenter les signaux dont l'arriv\*'ee n\*'ecessiterait une 
  384. transition nulle (c'est\(hy\*`a\(hydire une transition qui ne contient 
  385. aucune action et qui ram\*`ene au m\* | me \*'etat). La convention admise 
  386. est la suivante: pour tout signal qui n'est pas repr\*'esent\*'e dans un 
  387. symbole d'entr\*'ee explicite \*`a un \*'etat donn\*'e, il existe, dans 
  388. cet \*'etat, un symbole d'entr\*'ee implicite et une transition nulle. 
  389. Conform\*'ement \*`a cette convention, les deux diagrammes repr\*'esent\*'es 
  390. dans la 
  391. figure\ D\(hy3.8.21 sont logiquement \*'equivalents et peuvent \* | tre 
  392. indistinctement utilis\*'es. 
  393. .bp
  394. .RT
  395. .LP
  396. .rs
  397. .sp 25P
  398. .ad r
  399. \fBFigure D\(hy3.8.18, p. 8\fR 
  400. .sp 1P
  401. .RT
  402. .ad b
  403. .RT
  404. .LP
  405. .bp
  406. .LP
  407. .rs
  408. .sp 32P
  409. .ad r
  410. \fBFigure D\(hy3.8.19, p. 9\fR 
  411. .sp 1P
  412. .RT
  413. .ad b
  414. .RT
  415. .LP
  416. .bp
  417. .LP
  418. .rs
  419. .sp 29P
  420. .ad r
  421. \fBFigure D\(hy3.8.20, p. 10\fR 
  422. .sp 1P
  423. .RT
  424. .ad b
  425. .RT
  426. .LP
  427. .bp
  428. .LP
  429. .rs
  430. .sp 30P
  431. .ad r
  432. \fBFigure D\(hy3.8.21, p. 11\fR 
  433. .sp 1P
  434. .RT
  435. .ad b
  436. .RT
  437. .PP
  438. Lorsqu'un certain nombre d'entr\*'ees aboutissent \*`a la m\* | me
  439. transition, tous les identificateurs de signaux qui s'y rapportent peuvent
  440. \* | tre plac\*'es dans un m\* | me symbole d'entr\*'ee. Le LDS pr\*'evoit 
  441. une notation 
  442. abr\*'eg\*'ee pour repr\*'esenter une entr\*'ee de tous les signaux (valable 
  443. pour ce 
  444. processus) non explicitement mentionn\*'es dans cet \*'etat. La figure\ 
  445. D\(hy3.8.22 
  446. illustre cet aspect et les diagrammes qui y sont repr\*'esent\*'es sont 
  447. logiquement \*'equivalents. Si tous les identificateurs de signaux sont 
  448. mentionn\*'es, il faut 
  449. les s\*'eparer par des virgules.
  450. .sp 1P
  451. .LP
  452. D.3.8.3.2
  453.     \fIM\*'ecanisme implicite de mise en file d'attente\fR 
  454. .sp 9p
  455. .RT
  456. .PP
  457. Un ou plusieurs signaux peuvent \* | tre en attente d'absorption
  458. lorsqu'un processus parvient \*`a un nouvel \*'etat. Cela signifie que 
  459. les signaux doivent \* | tre mis en attente d'une certaine mani\*`ere si 
  460. l'on veut \*'eviter qu'ils soient perdus. Lorsqu'un signal parvient au 
  461. bloc de destination, il est plac\*'e dans la file d'attente d'entr\*'ee 
  462. du processus de r\*'eception. La s\*'emantique du LDS d\*'efinit pour chaque 
  463. processus un m\*'ecanisme th\*'eorique de mise en file d'attente selon 
  464. lequel le mode de s\*'election des signaux pour l'absorption par le 
  465. processus est fond\*'e sur l'ordre d'arriv\*'ee des signaux dans ce processus.
  466. Lorsque le processus parvient \*`a un \*'etat, il re\*,coit un seul signal en
  467. provenance de la file d'attente. Ceci signifie que si la file d'attente 
  468. n'est pas vide, le processus absorbe le premier signal qui vient de la 
  469. file d'attente en question. Si cette derni\*`ere est vide, le processus 
  470. demeure en attente dans l'\*'etat jusqu'\*`a l'arriv\*'ee \*`a la file 
  471. d'attente d'un signal qui est ensuite 
  472. absorb\*'e par le processus.
  473. .PP
  474. La figure D\(hy3.8.23 utilise le concept de file d'attente pour expliquer
  475. le fonctionnement d'un processus LDS dans lequel les temps de transition 
  476. sont diff\*'erents de z\*'ero. Il convient de noter les \*'el\*'ements 
  477. suivants: 
  478. .RT
  479. .LP
  480.     \(em
  481.     le concept de mise en r\*'eserve n'est pas appliqu\*'e et les
  482. signaux sont absorb\*'es dans l'ordre de leur arriv\*'ee;
  483. .LP
  484.     \(em
  485.      l'ordre de succession de l'arriv\*'ee des signaux est important. Si <<C>> 
  486. \*'etait arriv\*'e avant <<B>> dans la transition entre l'\*'etat\ 1 et 
  487. l'\*'etat\ 2, la s\*'equence des \*'etats aurait \*'et\*'e\ 1, 2, 3 au 
  488. lieu de\ 1, 2,\ 4; 
  489. .bp
  490. .LP
  491. .rs
  492. .sp 24P
  493. .ad r
  494. \fBFigure D\(hy3.8.22, p. 12\fR 
  495. .sp 1P
  496. .RT
  497. .ad b
  498. .RT
  499. .LP
  500.     \(em
  501.     la file d'attente n'\*'etant pas vide lorsque le processus
  502. arrive aux \*'etats\ 2 et\ 4, ce processus ne doit attendre ni dans l'un 
  503. ni dans 
  504. l'autre de ces \*'etats;
  505. .LP
  506.     \(em
  507.     il n'est pas possible d'attribuer la priorit\*'e \*`a un
  508. signal. Un m\*'ecanisme sp\*'ecial est pr\*'evu pour les communications 
  509. entre services, afin que les signaux \*'echang\*'es entre service soient 
  510. trait\*'es avant les autres 
  511. signaux (\(sc\ D.5.3).
  512. .PP
  513. Si les temps de transition sont nuls, chaque signal sera absorb\*'e au 
  514. moment de son arriv\*'ee dans un processus, sauf si l'on a recours \*`a 
  515. la mise en r\*'eserve (voir le \(sc\ D.3.8.4). 
  516. .sp 1P
  517. .LP
  518. D.3.8.3.3
  519.     \fIR\*'eception des signaux qui ne se pr\*'esentent pas normalement\fR 
  520. .sp 9p
  521. .RT
  522. .PP
  523. Dans chacun des \*'etats, tous les signaux possibles doivent \* | tre
  524. indiqu\*'es implicitement ou explicitement. Des exceptions (signaux inattendus
  525. mais th\*'eoriquement possibles, signaux non d\*'efinis ou logiquement 
  526. faux \*`a un 
  527. endroit donn\*'e,\ etc.) peuvent se pr\*'esenter dans presque tous les 
  528. \*'etats. 
  529. Normalement, l'auteur n'indique pas ces possibilit\*'es; il s'ensuit qu'un tel
  530. signal sera \*'elimin\*'e s'il se pr\*'esente. Si toutefois l'auteur tient 
  531. \*`a faire 
  532. figurer les exceptions dans son diagramme, il doit pr\*'evoir pour tous les
  533. \*'etats une entr\*'ee suppl\*'ementaire.
  534. .PP
  535. Une autre possibilit\*'e consiste \*`a profiter des apparitions multiples 
  536. d'un \*'etat portant le symbole <<tous>>\ (*). Par exemple, si le signal 
  537. A
  538. \(ulRACCROCH\o"E\(aa" peut \* | tre re\*,cu dans tous les \*'etats et si 
  539. les actions 
  540. post\*'erieures sont identiques, on peut recourir \*`a la m\*'ethode indiqu\*'ee 
  541. \*`a la 
  542. figure\ D\(hy3.8.24.
  543. .RT
  544. .sp 1P
  545. .LP
  546. D.3.8.3.4
  547.     \fIArriv\*'ee simultan\*'ee de signaux\fR 
  548. .sp 9p
  549. .RT
  550. .PP
  551. La Recommandation Z.100 (\(sc 2) pr\*'evoit que les signaux peuvent
  552. parvenir simultan\*'ement \*`a un processus et pr\*'ecise qu'ils seront 
  553. plac\*'es dans un ordre arbitraire. 
  554. .PP
  555. Si un usager met au point un processus capable de recevoir des signaux 
  556. simultan\*'es, il doit veiller \*`a ce que l'ordre d'arriv\*'ee ne bouleverse 
  557. pas le 
  558. fonctionnement escompt\*'e du processus.
  559. .PP
  560. Le LDS ne pr\*'econise pas de priorit\*'e parmi les signaux; ainsi, en 
  561. cas d'arriv\*'ee simultan\*'ee de signaux, l'un d'eux est choisi arbitrairement. 
  562. A noter cependant que les signaux pour communications entre services sont 
  563. toujours 
  564. trait\*'es les premiers (\(sc\ D.5.3).
  565. .PP
  566. Si plusieurs signaux sont disponibles au moment de l'entr\*'ee du
  567. processus dans un \*'etat, un seul signal est pr\*'esent\*'e au processus 
  568. puis reconnu comme une entr\*'ee. Selon la s\*'emantique du LDS, les autres 
  569. signaux sont en fait retenus. 
  570. .bp
  571. .RT
  572. .LP
  573. .rs
  574. .sp 33P
  575. .ad r
  576. \fBFigure D\(hy3.8.23, p. 13\fR 
  577. .sp 1P
  578. .RT
  579. .ad b
  580. .RT
  581. .LP
  582. .rs
  583. .sp 17P
  584. .ad r
  585. \fBFigure D\(hy3.8.24, p. 14\fR 
  586. .sp 1P
  587. .RT
  588. .ad b
  589. .RT
  590. .LP
  591. .bp
  592. .sp 1P
  593. .LP
  594. D.3.8.3.5
  595.     \fIIdentification de l'\*'emetteur\fR 
  596. .sp 9p
  597. .RT
  598. .PP
  599. Chaque signal est porteur de la valeur d'instance du processus
  600. (PId) du processus \*'emetteur. Lorsqu'un signal est absorb\*'e, la valeur 
  601. PId du 
  602. processus \*'emetteur peut \* | tre obtenue au moyen de l'expression SENDER. On
  603. trouvera dans la figure\ D\(hy3.8.25 un exemple d'emploi de cette variable.
  604. .RT
  605. .LP
  606. .rs
  607. .sp 13P
  608. .ad r
  609. \fBFigure D\(hy3.8.25, p. 15\fR 
  610. .sp 1P
  611. .RT
  612. .ad b
  613. .RT
  614. .sp 1P
  615. .LP
  616. D.3.8.4
  617.     \fIMises en r\*'eserve\fR 
  618. .sp 9p
  619. .RT
  620. .PP
  621. Le concept de mise en r\*'eserve permet de diff\*'erer l'absorption d'un 
  622. signal jusqu'\*`a ce qu'un ou plusieurs signaux ult\*'erieurs aient \*'et\*'e 
  623. absorb\*'es. 
  624. Comme l'indique le \(sc\ D.3.8.3, les signaux sont absorb\*'es dans l'ordre 
  625. dans 
  626. lequel ils se pr\*'esentent, sauf en cas d'emploi du concept de mise en 
  627. r\*'eserve. 
  628. .PP
  629. L'on peut faire appel au concept de mise en r\*'eserve afin de simplifier 
  630. les processus lorsque l'ordre relatif d'arriv\*'ee de certains signaux 
  631. n'a pas 
  632. d'importance et que leur ordre effectif d'arriv\*'ee est ind\*'etermin\*'e.
  633. .PP
  634. Dans chaque \*'etat, chaque signal est trait\*'e comme suit:
  635. .RT
  636. .LP
  637.     \(em
  638.     il est repr\*'esent\*'e comme un symbole d'entr\*'ee ou,
  639. .LP
  640.     \(em
  641.     il est repr\*'esent\*'e comme un symbole de mise en r\*'eserve ou,
  642. .LP
  643.     \(em
  644.     il est, par convention, couvert par une entr\*'ee implicite
  645. aboutissant \*`a une transition nulle implicite.
  646. .PP
  647. Le fonctionnement du m\*'ecanisme implicite de mise en file d'attente d\*'ecrit 
  648. dans le \(sc\ D.3.8.3 s'applique \*'egalement au concept de mise en r\*'eserve. 
  649. A leur arriv\*'ee, les signaux sont plac\*'es dans la file d'attente et 
  650. lorsque le 
  651. processus atteint un \*'etat donn\*'e, les signaux qui se trouvent dans la file
  652. d'attente sont examin\*'es un \*`a un dans l'ordre de leur arriv\*'ee. 
  653. Un signal 
  654. couvert par un symbole d'entr\*'ee explicite ou implicite est absorb\*'e et la
  655. transition qui s'y rapporte est ex\*'ecut\*'ee. Un signal repr\*'esent\*'e 
  656. dans un symbole de mise en r\*'eserve n'est pas absorb\*'e et reste dans 
  657. la file d'attente dans la 
  658. m\* | me position s\*'equentielle; le signal suivant de la file d'attente est
  659. consid\*'er\*'e. Aucune transition ne suit un symbole de mise en r\*'eserve.
  660. .PP
  661. En LDS/PR, la construction de mise en r\*'eserve est exprim\*'ee \*`a l'aide 
  662. du mot\(hycl\*'e SAVE suivi d'une liste d'identificateurs de signaux. On 
  663. trouvera un exemple simple d'\*'enonc\*'es de MISE EN R\o"E\(aa"SERVE dans 
  664. la figure\ D\(hy3.8.26. 
  665. .RT
  666. .LP
  667. .rs
  668. .sp 11P
  669. .ad r
  670. \fBFigure D\(hy3.8.26 [T15.100] \ \ 
  671. (\*`a traiter comme tableau MEP), p. 16\fR 
  672. .sp 1P
  673. .RT
  674. .ad b
  675. .RT
  676. .LP
  677. .bp
  678. .PP
  679. En LDS/GR, le concept de mise en r\*'eserve est repr\*'esent\*'e \*`a l'aide 
  680. du symbole de mise en r\*'eserve contenant les identificateurs de signaux. 
  681. .PP
  682. Comme dans le cas des entr\*'ees, une <<notation avec ast\*'erisque>> peut
  683. servir \*`a repr\*'esenter la mise en r\*'eserve de tous les signaux (valides 
  684. pour ce processus) qui ne sont pas explicitement mentionn\*'es dans cet 
  685. \*'etat. 
  686. .PP
  687. La figure D\(hy3.8.27 repr\*'esente un exemple d'un processus LDS qui
  688. comporte un symbole de mise en r\*'eserve. Il convient de noter que les 
  689. signaux\ S et\ R sont consomm\*'es dans l'ordre\ R, S, c'est\(hy\*`a\(hydire 
  690. dans l'ordre inverse de 
  691. leur r\*'eception. Un symbole de mise en r\*'eserve unique peut servir 
  692. \*`a mettre un signal en r\*'eserve tant que le processus se trouve dans 
  693. l'\*'etat dans lequel le 
  694. symbole appara\* | t; ce signal est mis en r\*'eserve pour la dur\*'ee 
  695. de la transition vers le prochain \*'etat. Dans le prochain \*'etat, le 
  696. signal sera absorb\*'e par 
  697. l'interm\*'ediaire d'une entr\*'ee explicite ou implicite (voir la figure\ 
  698. D\(hy3.8.27) sauf dans les cas suivants: lorsque le symbole de mise en 
  699. r\*'eserve comportant le nom du signal est r\*'ep\*'et\*'e ou lorsque dans 
  700. la file d'attente implicite, il existe avant lui, un autre signal de sauvegarde 
  701. disponible pour absorption (voir la 
  702. figure\ D\(hy3.8.28).
  703. .RT
  704. .LP
  705. .rs
  706. .sp 33P
  707. .ad r
  708. \fBFigure D\(hy3.8.27, p. 17\fR 
  709. .sp 1P
  710. .RT
  711. .ad b
  712. .RT
  713. .LP
  714. .bp
  715. .LP
  716. .rs
  717. .sp 32P
  718. .ad r
  719. \fBFigure D\(hy3.8.28, p. 18\fR 
  720. .sp 1P
  721. .RT
  722. .ad b
  723. .RT
  724. .PP
  725. Un signal mis en r\*'eserve n'est mis \*`a disposition d'un processus que 
  726. par l'interm\*'ediaire d'un symbole d'entr\*'ee correspondant (explicite 
  727. ou 
  728. implicite). Aucune question relative \*`a un signal mis en r\*'eserve ne 
  729. peut \* | tre pos\*'ee dans une d\*'ecision avant la reconnaissance de 
  730. ce signal comme une entr\*'ee; de m\* | me les donn\*'ees qui lui sont 
  731. associ\*'ees ne sont pas disponibles. 
  732. .PP
  733. Dans un \*'etat o\*`u plusieurs signaux doivent \* | tre mis en r\*'eserve, on
  734. peut attribuer un symbole de mise en r\*'eserve \*`a chaque signal ou on 
  735. peut les 
  736. repr\*'esenter tous \*`a l'int\*'erieur du m\* | me symbole de mise en 
  737. r\*'eserve. Si 
  738. plusieurs signaux doivent \* | tre mis en r\*'eserve, la s\*'emantique 
  739. du symbole de 
  740. mise en r\*'eserve exige que l'ordre de leur arriv\*'ee soit pr\*'eserv\*'e.
  741. .PP
  742. Un troisi\*`eme exemple de l'utilisation de la notion de mise en r\*'eserve 
  743. est donn\*'e dans la figure\ D\(hy3.8.29 et la figure\ D\(hy3.8.30 d\*'ecrit 
  744. le 
  745. fonctionnement du m\*'ecanisme de formation de la file d'attente.
  746. .PP
  747. L'utilisation du symbole de mise en r\*'eserve peut simplifier les
  748. diagrammes. Ainsi, en mettant un signal en r\*'eserve, l'on peut \*'eviter 
  749. de le 
  750. recevoir et de devoir mettre en m\*'emoire ses donn\*'ees associ\*'ees 
  751. jusqu'\*`a l'\*'etat suivant. 
  752. .PP
  753. Bien que le symbole de mise en r\*'eserve puisse \* | tre utilis\*'e \*`a 
  754. chaque niveau de description, il y aurait peut\(hy\* | tre lieu, au niveau 
  755. inf\*'erieur, de 
  756. d\*'ecrire le m\*'ecanisme effectif qui permet cette mise en r\*'eserve.
  757. .PP
  758. Sans un minimum de pr\*'ecautions dans l'emploi de la mise en r\*'eserve, 
  759. la file d'attente des signaux mis en r\*'eserve peut augmenter consid\*'erablement 
  760. ou 
  761. garder des signaux en m\*'emoire trop longtemps, de sorte qu'un signal ancien
  762. peut \* | tre absorb\*'e lorsqu'un signal r\*'ecent est demand\*'e.
  763. .PP
  764. Le LDS ne pr\*'evoit pas de limite \*`a la longueur de la file d'attente, 
  765. ce qui peut poser des probl\*`emes de mise en oeuvre. 
  766. .bp
  767. .RT
  768. .LP
  769. .rs
  770. .sp 29P
  771. .ad r
  772. \fBFigure D\(hy3.8.29, p. 19\fR 
  773. .sp 1P
  774. .RT
  775. .ad b
  776. .RT
  777. .LP
  778. .bp
  779. .LP
  780. .rs
  781. .sp 27P
  782. .ad r
  783. \fBFigure D\(hy3.8.30, p. 20\fR 
  784. .sp 1P
  785. .RT
  786. .ad b
  787. .RT
  788. .LP
  789. .bp
  790. .sp 1P
  791. .LP
  792. D.3.8.5
  793.     \fICondition de validation et signaux continus\fR 
  794. .sp 9p
  795. .RT
  796. .PP
  797. Les conditions de validation permettent une r\*'eception
  798. conditionnelle de signaux fond\*'ee sur la condition de validation sp\*'ecifi\*'ee. 
  799. Le signal est re\*,cu et la transition interpr\*'et\*'ee si la condition 
  800. est vraie. En 
  801. cas de condition fausse, le signal est mis en r\*'eserve et le processus 
  802. ne change pas d'\*'etat jusqu'\*`a ce qu'un autre signal arrive ou que 
  803. la condition 
  804. devienne vraie. L'exemple de la figure\ D\(hy3.8.31 illustre ceci. Lorsque P1
  805. passe \*`a l'\*'etat\ S1, la condition (c'est\(hy\*`a\(hydire de savoir 
  806. si IMPORT (X,P2) est \*'egal \*`a\ 10) est \*'evalu\*'ee. Si elle est vraie, 
  807. le signal\ B peut \* | tre re\*,cu. 
  808. Sinon, le signal\ B est mis en r\*'eserve. Dans cet exemple, A arrive et 
  809. provoque une transition vers\ S2. Pendant la transition, X passe \*`a la 
  810. valeur\ 11 et\ P2 
  811. exporte sa nouvelle valeur; alors, la condition li\*'ee au signal\ B dans 
  812. l'\*'etat\ S2 est vraie. Etant donn\*'e que\ B est le premier signal de 
  813. la file d'attente, la 
  814. transition qui suit est ex\*'ecut\*'ee et le processus prend fin \*`a l'\*'etat\ 
  815. S3. 
  816. .PP
  817. Certaines caract\*'eristiques des conditions de validation
  818. sont importantes:
  819. .RT
  820. .LP
  821.     1)
  822.      la condition de validation est test\*'ee lorsque le processus arrive 
  823. \*`a un \*'etat; il est alors continuellement contr\* | l\*'e tandis que 
  824. le 
  825. processus reste dans cet \*'etat. Ainsi, si la valeur export\*'ee de\ X 
  826. avait pass\*'e 
  827. de\ 9 \*`a\ 11 puis \*`a\ 12 pendant la transition qui faisait suite \*`a 
  828. la r\*'eception de\ A, le processus serait rest\*'e \*`a\ S2; 
  829. .LP
  830.     2)
  831.      les conditions de validation peuvent \* | tre fond\*'ees sur des variables 
  832. locales et/ou toute construction de langage qui peut \* | tre comprise 
  833. dans une expression (par exemple, IMPORT (IMPORTATION), VIEW (VUE), NOW 
  834. (MAINTENANT));
  835. .LP
  836.     3)
  837.      alors qu'il est possible d'employer plus d'une condition par \*'etat, 
  838. l'emploi de plus d'une condition de validation pour le m\* | me signal 
  839. n'est pas autoris\*'e. Ainsi, la condition indiqu\*'ee dans la figure\ 
  840. D\(hy3.8.32 n'est pas 
  841. autoris\*'ee. Si un signal donn\*'e exige des conditions multiples, il 
  842. est possible de les combiner en une expression bool\*'eenne ainsi que le 
  843. montre la 
  844. figure\ D\(hy3.8.33.
  845. .PP
  846. On peut \*'evaluer les conditions de validation plusieurs fois et
  847. dans un ordre quelconque, de sorte que l'usager doit \* | tre vigilant si les
  848. expressions ont des effets secondaires r\*'eciproques (par exemple IMPORT et
  849. SENDER combin\*'es).
  850. .PP
  851. Il faut noter en outre que le signal sp\*'ecifi\*'e dans la condition de
  852. validation ne peut influencer la valeur bool\*'eenne de la condition car ses
  853. valeurs transport\*'ees ne sont pas affect\*'ees avant l'absorption du 
  854. signal. A 
  855. titre d'exemple, les \*'enonc\*'es:
  856. .RT
  857. .LP
  858. INPUT\ x(A) PROVIDED (A=5);...
  859. INPUT\ y PROVIDED(SENDER)=pid1);
  860. .LP
  861. pr\* | tent \*`a confusion car les valeurs de\ A et de SENDER dans les 
  862. conditions 
  863. correspondent \*`a la situation telle qu'elle \*'etait avant l'absorption du
  864. signal.
  865. .PP
  866. Les signaux continus ont les m\* | mes propri\*'et\*'es fondamentales que 
  867. la condition de validation, except\*'e le fait qu'ils ne sont accompagn\*'es 
  868. d'aucun signal. Ainsi, en l'absence de signaux dans la file d'attente susceptibles 
  869. de provoquer une transition \*`a leur entr\*'ee dans l'\*'etat, les signaux 
  870. continus sont contr\* | l\*'es; si l'un d'entre eux est vrai, la transition 
  871. qui le suit est 
  872. ex\*'ecut\*'ee. L'exemple de la figure\ D\(hy3.8.34 en donne l'illustration. A
  873. l'origine, le processus se trouve \*`a l'\*'etat\ S1 et la valeur export\*'ee 
  874. de\ X 
  875. est\ 9. En arrivant, le signal\ A provoque la transition vers l'\*'etat\ 
  876. S2. Pendant la transition, X\ prend la valeur\ 11. Vu qu'aucun autre signal 
  877. ne se trouve dans la file d'attente, la transition vers l'\*'etat\ S3 s'accomplit. 
  878. .PP
  879. L'on trouvera ci\(hydessous certaines caract\*'eristiques importantes des 
  880. signaux continus: 
  881. .RT
  882. .LP
  883.     1)
  884.      de m\* | me que pour les conditions de validation, la valeur de la condition 
  885. n'est contr\* | l\*'ee qu'\*`a l'arriv\*'ee \*`a un \*'etat; 
  886. .LP
  887.     2)
  888.     les signaux continus multiples sont autoris\*'es pour chaque
  889. \*'etat. Lorsque plusieurs signaux continus sont li\*'es \*`a un \*'etat, 
  890. le signal 
  891. continu ayant le rang de priorit\*'e le plus \*'elev\*'e (le num\*'ero 
  892. le plus bas) sera 
  893. trait\*'e le premier. Deux signaux continus ne peuvent avoir le m\* | me 
  894. rang de 
  895. priorit\*'e. Le signal continu est toujours moins prioritaire que tout autre
  896. signal. Ceci est de nouveau d\* |  au syst\*`eme sous\(hyjacent du LDS: 
  897. toutefois, la repr\*'esentation \*`a l'aide de mod\*`eles des signaux continus 
  898. en LDS (emploi des 
  899. signaux \*'emis pendant l'exportation de variables), permet le recours \*`a des
  900. priorit\*'es pour les signaux continus: ceci est d'ailleurs n\*'ecessaire afin
  901. d'\*'eviter toute ambigu\*:it\*'e en cas de pr\*'esence de plusieurs signaux 
  902. continus. La figure\ D\(hy3.8.35 en donne une illustration. Le processus 
  903. commence \*`a l'\*'etat\ S1 et ses variables locales\ X et\ Y ont respectivement 
  904. les valeurs\ 10 et\ 11. Etant donn\*'e que les deux signaux continus sont 
  905. vrais, celui qui a la plus haute 
  906. priorit\*'e (rang de priorit\*'e le plus bas) est choisi et la transition vers
  907. l'\*'etat\ S2 s'accomplit. En S2, la condition de Y n'est plus vraie, et 
  908. bien que 
  909. .LP
  910. la priorit\*'e du signal continu de\ X soit inf\*'erieure \*`a celle de\ 
  911. Y, la transition qui le suit est ex\*'ecut\*'ee et le processus parvient 
  912. \*`a l'\*'etat\ S3; 
  913. .LP
  914.     3)
  915.     lorsque la transition d'un signal continu a une suite,
  916. l'expression SENDER (\o"E\(aa"METTEUR) retourne la m\* | me valeur de
  917. SELF.
  918. .bp
  919. .LP
  920. .rs
  921. .sp 27P
  922. .ad r
  923. \fBFigure D\(hy3.8.31, p. 21\fR 
  924. .sp 1P
  925. .RT
  926. .ad b
  927. .RT
  928. .LP
  929. .rs
  930. .sp 17P
  931. .ad r
  932. \fBFigure D\(hy3.8.32, p. 22\fR 
  933. .sp 1P
  934. .RT
  935. .ad b
  936. .RT
  937. .LP
  938. .bp
  939. .LP
  940. .rs
  941. .sp 16P
  942. .ad r
  943. \fBFigure D\(hy3.8.33, p. 23\fR 
  944. .sp 1P
  945. .RT
  946. .ad b
  947. .RT
  948. .LP
  949. .rs
  950. .sp 23P
  951. .ad r
  952. \fBFigure D\(hy3.8.34, p. 24\fR 
  953. .sp 1P
  954. .RT
  955. .ad b
  956. .RT
  957. .LP
  958. .bp
  959. .LP
  960. .rs
  961. .sp 23P
  962. .ad r
  963. \fBFigure D\(hy3.8.35, p. 25\fR 
  964. .sp 1P
  965. .RT
  966. .ad b
  967. .RT
  968. .sp 1P
  969. .LP
  970. D.3.8.6
  971.     \fISorties\fR 
  972. .sp 9p
  973. .RT
  974. .PP
  975. Une sortie est l'\*'emission d'un signal d'un processus vers un autre ou 
  976. vers lui\(hym\* | me. Etant donn\*'e que le contr\* | le de la r\*'eception 
  977. et de 
  978. l'absorption du signal est associ\*'e au processus de r\*'eception (voir le
  979. \(sc\ D.3.8.3), les r\*`egles s\*'emantiques se rapportant directement 
  980. aux symboles de sorties sont relativement simples. Du point de vue du processus 
  981. d'\*'emission, une sortie peut souvent \* | tre consid\*'er\*'ee comme 
  982. une action instantan\*'ee qui, une fois achev\*'ee, n'a aucun autre effet 
  983. direct sur le processus d'\*'emission, lequel ne 
  984. sera pas directement conscient du sort du signal.
  985. .PP
  986. Une action de sortie repr\*'esente l'\*'emission d'un signal et
  987. l'association de valeurs s'il en existe. Il est possible d'associer des 
  988. valeurs \*`a un signal de sortie en les pla\*,cant entre parenth\*`eses 
  989. ou en mettant des 
  990. expressions ayant des valeurs entre parenth\*`eses (voir la figure\ D\(hy3.8.37). 
  991. .PP
  992. En LDS/PR, une action de sortie est repr\*'esent\*'ee \*`a l'aide du mot\(hycl\*'e 
  993. OUTPUT (sortie) suivi d'une liste d'identificateurs de signaux. Une liste 
  994. de 
  995. param\*`etres r\*'eels mis entre parenth\*`eses peut \* | tre associ\*'ee 
  996. \*`a chaque 
  997. identificateur de signal. S'il n'existe pas en fait de param\*`etre r\*'eel 
  998. dans la sortie correspondant \*`a une sorte dans la d\*'efinition du signal, 
  999. la variable 
  1000. correspondante dans l'entr\*'ee de r\*'eception aura la valeur <<ind\*'efinie>>. 
  1001. .PP
  1002. L'instance de processus de destination doit \* | tre exprim\*'ee dans
  1003. l'instruction de sortie par le mot\(hycl\*'e\ TO (vers) suivi d'une expression
  1004. d'instance de processus. Si l'instance de processus de destination peut 
  1005. \* | tre d\*'etermin\*'ee uniquement par le contexte, la clause\ TO peut 
  1006. \* | tre omise. Une 
  1007. condition d'adressage suppl\*'ementaire peut \* | tre fournie dans l'\*'enonc\*'e 
  1008. de sortie \*`a l'aide du mot\(hycl\*'e\ VIA suivi d'une liste d'acheminement 
  1009. de signaux et 
  1010. d'identificateurs de canaux.
  1011. .PP
  1012. La figure D\(hy3.8.36 donne quelques exemples valables d'\*'enonc\*'es de
  1013. sortie.
  1014. .bp
  1015. .RT
  1016. .LP
  1017. .rs
  1018. .sp 10P
  1019. .ad r
  1020. \fBFigure D\(hy3.8.36 [T16.100] \ \ 
  1021. (\*`a traiter comme tableau MEP), p. 26\fR 
  1022. .sp 1P
  1023. .RT
  1024. .ad b
  1025. .RT
  1026. .PP
  1027. En LDS/GR, une sortie est repr\*'esent\*'ee \*`a l'aide d'un symbole de
  1028. sortie contenant la sp\*'ecification de signaux, de param\*`etres r\*'eels 
  1029. et, en 
  1030. option, de destination et/ou de construction\ VIA.
  1031. .PP
  1032. Chaque sortie doit \* | tre dirig\*'ee vers une instance de processus
  1033. donn\*'ee. Etant donn\*'e qu'il est g\*'en\*'eralement impossible de conna\* | tre 
  1034. l'instance de processus de tout processus au moment de l'\*'elaboration 
  1035. d'une sp\*'ecification, la m\*'ethode normale pour diriger les signaux 
  1036. consiste \*`a employer une variable ou une expression dans le mot\(hycl\*'e\ 
  1037. TO (VERS). On trouvera dans les 
  1038. figures\ D\(hy3.8.38, D\(hy3.8.39 et D\(hy3.8.40 des exemples. Dans la
  1039. figure\ D\(hy3.8.38,
  1040. le param\*`etre de processus <<out
  1041. \(ulto>> prend la valeur d'une instance de
  1042. processus
  1043. lors de la cr\*'eation du processus. Le r\* | le de <<out
  1044. \(ulto>> au sein du processus   est
  1045. d'assurer la liaison entre le processus en question et le processus auquel 
  1046. il est connect\*'e. Il convient de veiller lors de la conception du syst\*`eme, 
  1047. \*`a ce que le type de processus indiqu\*'e par <<out 
  1048. \(ulto>> puisse recevoir les signaux qui sont \*'emis. Dans la figure\ 
  1049. D\(hy3.8.39, l'expression pr\*'ed\*'efinie SENDER sert \*`a 
  1050. renvoyer un signal au processus qui a \*'emis le signal re\*,cu peu avant. 
  1051. Dans la figure\ D\(hy3.8.40, le signal est envoy\*'e vers le descendant 
  1052. le plus r\*'ecent du 
  1053. processus.
  1054. .RT
  1055. .LP
  1056. .rs
  1057. .sp 31P
  1058. .ad r
  1059. \fBFigure D\(hy3.8.37, p. 27\fR 
  1060. .sp 1P
  1061. .RT
  1062. .ad b
  1063. .RT
  1064. .LP
  1065. .bp
  1066. .LP
  1067. .rs
  1068. .sp 9P
  1069. .ad r
  1070. \fBFigure D\(hy3.8.38 [T17.100] \ \ 
  1071. (\*`a traiter comme tableau MEP), p. 28\fR 
  1072. .sp 1P
  1073. .RT
  1074. .ad b
  1075. .RT
  1076. .LP
  1077. .rs
  1078. .sp 7P
  1079. .ad r
  1080. \fBFigure D\(hy3.8.39, p. 29\fR 
  1081. .sp 1P
  1082. .RT
  1083. .ad b
  1084. .RT
  1085. .LP
  1086. .rs
  1087. .sp 7P
  1088. .ad r
  1089. \fBFigure D\(hy3.8.40, p. 30\fR 
  1090. .sp 1P
  1091. .RT
  1092. .ad b
  1093. .RT
  1094. .sp 1P
  1095. .LP
  1096. D.3.8.7
  1097.     \fIT\* | che\fR 
  1098. .sp 9p
  1099. .RT
  1100. .PP
  1101. Dans une transition, une t\* | che sert \*`a repr\*'esenter \*`a l'aide
  1102. d'un texte informel des op\*'erations sur des variables ou une op\*'eration
  1103. sp\*'eciale.
  1104. .PP
  1105. En LDS/PR, une t\* | che est repr\*'esent\*'ee par le mot\(hycl\*'e TASK 
  1106. (T\* | CHE) 
  1107. suivi d'une liste d'instructions ou de textes informels s\*'epar\*'es par des
  1108. virgules et se terminant par un point\(hyvirgule. Une instruction d'une 
  1109. t\* | che 
  1110. peut consister simplement en une affectation. Un texte informel consiste 
  1111. en une phrase d\*'elimit\*'ee par des apostrophes. On trouvera dans la 
  1112. figure\ D\(hy3.8.41 des exemples de t\* | ches valables en LDS/PR. 
  1113. .RT
  1114. .LP
  1115. .rs
  1116. .sp 10P
  1117. .ad r
  1118. \fBFigure D\(hy3.8.41 [T18.100] \ \ 
  1119. (\*`a traiter comme tableau MEP), p. 31\fR 
  1120. .sp 1P
  1121. .RT
  1122. .ad b
  1123. .RT
  1124. .LP
  1125. .bp
  1126. .PP
  1127. En LDS/GR, une t\* | che se compose d'un symbole de t\* | che contenant 
  1128. la liste des instructions ou des textes informels. 
  1129. .PP
  1130. Les usagers du LDS peuvent parfois \*'eprouver de la difficult\*'e \*`a
  1131. d\*'ecider si un aspect du syst\*`eme d\*'efini doit \* | tre repr\*'esent\*'e 
  1132. par une t\* | che ou un processus distinct. Consid\*'erons l'exemple du 
  1133. processus repr\*'esent\*'e dans la 
  1134. figure\ D\(hy3.8.42: l'action <<connecter\(hytrajet\(hyde\(hycommutation>> 
  1135. doit\(hyelle \* | tre 
  1136. repr\*'esent\*'ee par une t\* | che ou par un processus distinct? Si l'on 
  1137. n'a pas 
  1138. identifi\*'e un processus distinct de commande de trajet de commutation, 
  1139. il serait indiqu\*'e d'utiliser le symbole t\* | che [voir la figure\ D\(hy3.8.42\ 
  1140. a)]. Si on a 
  1141. identifi\*'e un processus distinct de commande de trajet de commutation, 
  1142. on doit utiliser les signaux qui communiquent avec le processus de commande 
  1143. [voir la 
  1144. figure\ D\(hy3.8.42\ b)].
  1145. .RT
  1146. .LP
  1147. .rs
  1148. .sp 26P
  1149. .ad r
  1150. \fBFigure D\(hy3.8.42, p. 32\fR 
  1151. .sp 1P
  1152. .RT
  1153. .ad b
  1154. .RT
  1155. .sp 1P
  1156. .LP
  1157. D.3.8.8
  1158.     \fID\*'ecisions\fR 
  1159. .sp 9p
  1160. .RT
  1161. .PP
  1162. Une d\*'ecision est une action qui se produit au cours d'une
  1163. transition et qui correspond \*`a une question concernant la valeur d'une
  1164. expression au moment de l'ex\*'ecution de l'action; le processus a le choix 
  1165. entre deux ou plusieurs trajets, ce choix \*'etant d\*'etermin\*'e par 
  1166. la r\*'eponse cons\*'ecutive \*`a la d\*'ecision. Les auteurs des diagrammes 
  1167. LDS doivent veiller \*`a ce que les 
  1168. processus soient d\*'efinis de mani\*`ere qu'ils ne puissent tenter d'ex\*'ecuter 
  1169. des d\*'ecisions pour lesquelles des r\*'eponses (ou les donn\*'ees) ne 
  1170. sont pas 
  1171. disponibles; de telles d\*'ecisions rendraient le diagramme tout \*`a fait 
  1172. incorrect et entra\* | neraient une confusion consid\*'erable. 
  1173. .PP
  1174. La question \*`a laquelle correspond une d\*'ecision peut \* | tre une
  1175. expression ou un texte informel. Les r\*'eponses apport\*'ees par une d\*'ecision 
  1176. sont repr\*'esent\*'ees par une ou plusieurs valeurs possibles obtenues 
  1177. par l'\*'evaluation de l'expression de la question ou par un ou plusieurs 
  1178. textes informels. Si la question ou l'une des r\*'eponses est informelle, 
  1179. toute la d\*'ecision est 
  1180. informelle. Des r\*'eponses diff\*'erentes sont s\*'epar\*'ees par des 
  1181. virgules. Les 
  1182. valeurs sont repr\*'esent\*'ees par des expressions constantes, par des 
  1183. expressions constantes ayant un op\*'erateur comme pr\*'efixe ou par des 
  1184. gammes dont les limites sup\*'erieures et inf\*'erieures sont des expressions 
  1185. constantes. Les valeurs de 
  1186. r\*'eponse doivent \* | tre du m\* | me type que l'expression contenue dans la
  1187. question.
  1188. .PP
  1189. Il est possible d'indiquer explicitement certaines r\*'eponses et de
  1190. grouper toutes les autres r\*'eponses possibles en employant le mot\(hycl\*'e 
  1191. ELSE 
  1192. (AUTRE).
  1193. .bp
  1194. .PP
  1195. En LDS/PR, la d\*'ecision est repr\*'esent\*'ee par le mot\(hycl\*'e D\o"E\(aa"CISION 
  1196. suivi par la sp\*'ecification de la question et la liste des r\*'eponses 
  1197. possibles, chacune \*'etant associ\*'ee \*`a la transition correspondante. 
  1198. Les r\*'eponses sont indiqu\*'ees 
  1199. entre parenth\*`eses. L'ensemble des transitions sortantes est d\*'elimit\*'e 
  1200. par le 
  1201. mot\(hycl\*'e ENDDECISION (FIN DE D\o"E\(aa"CISION) plac\*'e \*`a la fin 
  1202. (voir la 
  1203. figure\ D\(hy3.8.43).
  1204. .RT
  1205. .LP
  1206. .rs
  1207. .sp 9P
  1208. .ad r
  1209. \fBFigure D\(hy3.8.43 [T19.100] \ \ 
  1210. (\*`a traiter comme tableau MEP), p. 33\fR 
  1211. .sp 1P
  1212. .RT
  1213. .ad b
  1214. .RT
  1215. .PP
  1216. On trouvera certains exemples de d\*'ecisions dans la
  1217. figure\ D\(hy3.8.44.
  1218. .LP
  1219. .rs
  1220. .sp 24P
  1221. .ad r
  1222. \fBFigure D\(hy3.8.44 [T20.100] \ \ 
  1223. (\*`a traiter comme tableau MEP), p. 34\fR 
  1224. .sp 1P
  1225. .RT
  1226. .ad b
  1227. .RT
  1228. .PP
  1229. Toutes les transitions se terminent par le mot\(hycl\*'e ENDECISION (FIN 
  1230. DE D\o"E\(aa"CISION). Les d\*'ecisions qui ne se terminent pas par un \*'enonc\*'e 
  1231. terminal 
  1232. (c'est\(hy\*`a\(hydire jonction, \*'etat suivant, arr\* | t) continuent 
  1233. dans l'\*'enonc\*'e qui 
  1234. suit le mot ENDECISION, comme indiqu\*'e dans les deux branches \*'equivalentes 
  1235. de la figure\ D\(hy3.8.45. 
  1236. .bp
  1237. .LP
  1238. .rs
  1239. .sp 19P
  1240. .ad r
  1241. \fBFigure D\(hy3.8.45, p. 35\fR 
  1242. .sp 1P
  1243. .RT
  1244. .ad b
  1245. .RT
  1246. .PP
  1247. L'instruction de d\*'ecision peut en outre servir \*`a former la
  1248. structure IF\(hyTHEN (SI\(hyALORS), la structure DO\(hyWHILE (FAIRE\(hyPENDANT) 
  1249. et la 
  1250. structure LOOP\(hyUNTIL (BOUCLE\(hyJUSQU'\o"A\(ga") comme en programmation 
  1251. structur\*'ee. 
  1252. .PP
  1253. En LDS/GR, une d\*'ecision est repr\*'esent\*'ee \*`a l'aide d'un symbole de
  1254. d\*'ecision contenant le texte de la question. Le symbole doit avoir deux 
  1255. branches ou plus associ\*'ees aux r\*'eponses correspondantes. Chaque r\*'eponse 
  1256. doit \* | tre 
  1257. plac\*'ee \*`a la droite ou au sommet de la branche correspondante ou au\(hydessus 
  1258. de la branche qui interrompt la ligne de liaison. En LDS/GR, les parenth\*`eses 
  1259. servant \*`a d\*'elimiter les r\*'eponses sont facultatives mais il est 
  1260. sugg\*'er\*'e de les utiliser pour \*'eviter tout malentendu. 
  1261. .PP
  1262. On trouvera certains exemples de d\*'ecisions en LDS/GR dans la
  1263. figure\ D\(hy3.8.46.
  1264. .RT
  1265. .LP
  1266. .rs
  1267. .sp 16P
  1268. .ad r
  1269. \fBFigure D\(hy3.8.46, p. 36\fR 
  1270. .sp 1P
  1271. .RT
  1272. .ad b
  1273. .RT
  1274. .LP
  1275. .bp
  1276. .PP
  1277. Si une r\*'eponse ram\*`ene \*`a la d\*'ecision de la m\* | me transition, 
  1278. il convient d'ex\*'ecuter certaines actions qui influencent la question 
  1279. ayant trait \*`a la d\*'ecision. Toutefois, m\* | me si cette r\*`egle 
  1280. est appliqu\*'ee, des boucles 
  1281. infinies peuvent appara\* | tre, comme indiqu\*'e dans la figure\ D\(hy3.8.47. 
  1282. Il faut 
  1283. donc toujours faire attention lorsque des r\*'eponses se r\*'ef\*`erent 
  1284. \*`a une 
  1285. d\*'ecision de la m\* | me transition.
  1286. .LP
  1287. .rs
  1288. .sp 15P
  1289. .ad r
  1290. \fBFigure D\(hy3.8.47, p. 37\fR 
  1291. .sp 1P
  1292. .RT
  1293. .ad b
  1294. .RT
  1295. .PP
  1296. Des d\*'ecisions peuvent \* | tre prises \*`a l'aide de toute valeur
  1297. existant dans le processus et notamment:
  1298. .LP
  1299.     \(em
  1300.     des valeurs re\*,cues par une entr\*'ee;
  1301. .LP
  1302.     \(em
  1303.      des valeurs transmises en tant que param\*`etres effectifs au moment 
  1304. de la cr\*'eation du processus; 
  1305. .LP
  1306.     \(em
  1307.     des valeurs partag\*'ees.
  1308. .PP
  1309. L'expression qui figure dans la question peut comprendre des
  1310. constantes de l'un quelconque des types de valeurs susmentionn\*'es.
  1311. .sp 1P
  1312. .LP
  1313. D.3.8.9
  1314.     \fIBranchements et connecteurs\fR 
  1315. .sp 9p
  1316. .RT
  1317. .PP
  1318. Les branchements permettent de transf\*'erer la commande d'un point \*`a 
  1319. un autre d'un corps de processus (ainsi qu'\*`a l'int\*'erieur d'un corps 
  1320. de 
  1321. proc\*'edure ou d'un corps de service).
  1322. .PP
  1323. En LDS/PR, les branchements sont \*'equivalents \*`a des \*'enonc\*'es 
  1324. <<GO TO>>. Des \*'etiquettes sont utilis\*'ees comme points d'introduction 
  1325. associ\*'es aux 
  1326. instructions, comme indiqu\*'e dans la figure\ D\(hy3.8.48. A l'int\*'erieur 
  1327. d'un corps de processus (ou d'un corps de proc\*'edure), il est impossible 
  1328. de transf\*'erer la commande (et par cons\*'equent les \*'etiquettes associ\*'ees) 
  1329. au type instructions 
  1330. indiqu\*'e dans la figure\ D\(hy3.8.49. Les \*'etiquettes demeurent toujours 
  1331. localis\*'ees dans un processus; il est donc impossible de transf\*'erer 
  1332. la commande d'un 
  1333. processus \*`a un autre \*`a l'aide d'un branchement.
  1334. .RT
  1335. .LP
  1336. .rs
  1337. .sp 11P
  1338. .ad r
  1339. \fBFigure D\(hy3.8.48, p. 38\fR 
  1340. .sp 1P
  1341. .RT
  1342. .ad b
  1343. .RT
  1344. .LP
  1345. .bp
  1346. .LP
  1347. .rs
  1348. .sp 9P
  1349. .ad r
  1350. \fBFigure D\(hy3.8.49 [T21.100] \ \ 
  1351. (\*`a traiter comme tableau MEP), p. 39\fR 
  1352. .sp 1P
  1353. .RT
  1354. .ad b
  1355. .RT
  1356. .PP
  1357. En LDS/GR, les branchements correspondent aux connecteurs (de
  1358. sortie et d'entr\*'ee). Elles peuvent \* | tre utilis\*'ees pour subdiviser les
  1359. programmes, en cas de manque de place, ou pour \*'eviter le croisement 
  1360. de lignes de liaison qui enl\*`everait de leur clart\*'e aux diagrammes. 
  1361. En outre, il est 
  1362. g\*'en\*'eralement pr\*'ef\*'erable, lorsque l'on trace un diagramme en 
  1363. LDS, que la liaison se dirige du haut au bas de la page. 
  1364. .PP
  1365. En GR, toute ligne de liaison peut \* | tre interrompue par une paire de 
  1366. connecteurs associ\*'es; on admet alors que la liaison se dirige du connecteur 
  1367. de sortie au connecteur d'entr\*'ee. Chaque symbole de connecteur contient 
  1368. un nom, 
  1369. associ\*'e aux connecteurs portant le m\* | me nom. Il existe un seul connecteur 
  1370. d'entr\*'ee pour chaque nom mais il peut y avoir un ou plusieurs connecteurs de
  1371. sortie.
  1372. .PP
  1373. En GR, il est souhaitable que la page de r\*'ef\*'erence se rapportant au
  1374. connecteur d'entr\*'ee appropri\*'e soit sp\*'ecifi\*'ee pour le connecteur 
  1375. de sortie et 
  1376. que la ou les r\*'ef\*'erences de pages relatives aux connecteurs de sortie
  1377. appropri\*'es devraient \* | tre donn\*'ees pour le connecteur d'entr\*'ee 
  1378. (voir l'exemple de la figure\ D\(hy3.8.50). 
  1379. .RT
  1380. .LP
  1381. .rs
  1382. .sp 16P
  1383. .ad r
  1384. \fBFigure D\(hy3.8.50, p. 40\fR 
  1385. .sp 1P
  1386. .RT
  1387. .ad b
  1388. .RT
  1389. .sp 1P
  1390. .LP
  1391. D.3.9
  1392.     \fIProc\*'edures\fR 
  1393. .sp 9p
  1394. .RT
  1395. .PP
  1396. En LDS, les proc\*'edures sont similaires aux proc\*'edures du CHILL et 
  1397. d'autres langages de programmation. Elles visent \*`a: 
  1398. .RT
  1399. .LP
  1400.     a)
  1401.     permettre de structurer un processus en plusieurs niveaux de pr\*'ecision;
  1402. .LP
  1403.     b)
  1404.      conserver la compacit\*'e des sp\*'ecifications en permettant de repr\*'esenter 
  1405. comme un seul \*'el\*'ement un assemblage complexe d'\*'el\*'ements qui 
  1406. peuvent \* | tre consid\*'er\*'es isol\*'ement;
  1407. .LP
  1408.     c)
  1409.      permettre de d\*'efinir et d'utiliser \*`a plusieurs reprises les assemblages 
  1410. d'\*'el\*'ements utilis\*'es. 
  1411. .PP
  1412. Une d\*'efinition de proc\*'edure ne peut exister que dans une
  1413. d\*'efinition de processus, dans une d\*'efinition de service ou une d\*'efinition 
  1414. de 
  1415. proc\*'edure et, par cons\*'equent, une proc\*'edure n'est visible que 
  1416. pour le processus ou la proc\*'edure dans lesquels elle est d\*'efinie. 
  1417. .bp
  1418. .PP
  1419. Une d\*'efinition de proc\*'edure se compose des \*'el\*'ements suivants (dont
  1420. certains sont facultatifs):
  1421. .RT
  1422. .LP
  1423.     \(em
  1424.     nom de la proc\*'edure;
  1425. .LP
  1426.     \(em
  1427.      param\*`etres formels de proc\*'edure: liste de noms de variables associ\*'ees 
  1428. \*`a leur sorte. Ces param\*`etres servent \*`a transf\*'erer l'information 
  1429. de la proc\*'edure ou \*`a partir de celle\(hyci au moment de l'appel. 
  1430. Les param\*`etres 
  1431. de proc\*'edure peuvent \* | tre pass\*'es par valeur (param\*`etre IN) 
  1432. ou par r\*'ef\*'erence (param\*`etre IN/OUT). Si un param\*`etre est pass\*'e 
  1433. par valeur, la sp\*'ecification du param\*`etre formel d\*'efinit une variable 
  1434. locale \*`a la proc\*'edure; s'il est pass\*'e par r\*'ef\*'erence, la 
  1435. sp\*'ecification d\*'efinit un synonyme pour la variable; 
  1436. .LP
  1437.     \(em
  1438.     d\*'efinitions de proc\*'edure: proc\*'edures qui peuvent \* | tre
  1439. appel\*'ees tout comme la proc\*'edure proprement dite;
  1440. .LP
  1441.     \(em
  1442.     d\*'efinitions de donn\*'ees: sp\*'ecification de types de donn\*'ees
  1443. locales \*`a la proc\*'edure;
  1444. .LP
  1445.     \(em
  1446.     d\*'efinitions de variables: variables locales \*`a la proc\*'edure;
  1447. .LP
  1448.     \(em
  1449.      corps de proc\*'edure: sp\*'ecification du comportement effectif de la 
  1450. proc\*'edure pour ce qui est des \*'etats et des actions (comme pour le 
  1451. corps de processus). 
  1452. .PP
  1453. On trouvera dans la figure D\(hy3.9.1 un exemple partiel de
  1454. d\*'efinition de proc\*'edure en LDS/PR (les mots\(hycl\*'es du langage 
  1455. sont \*'ecrits en 
  1456. majuscules). A noter que les param\*`etres formels sans attribut explicite 
  1457. ont un attribut implicite IN (var5 dans la figure). 
  1458. .LP
  1459. .rs
  1460. .sp 14P
  1461. .ad r
  1462. \fBFigure D\(hy3.9.1 [T22.100] \ \ 
  1463. (\*`a traiter comme tableau MEP), p. 41\fR 
  1464. .sp 1P
  1465. .RT
  1466. .ad b
  1467. .RT
  1468. .sp 1P
  1469. .LP
  1470. D.3.9.1
  1471.     \fICorps de proc\*'edure\fR 
  1472. .sp 9p
  1473. .RT
  1474. .PP
  1475. Le corps de proc\*'edure pr\*'esente de grandes similitudes avec le corps 
  1476. de processus; toutefois les diff\*'erences sont les suivantes: 
  1477. .RT
  1478. .LP
  1479.     \(em
  1480.      la proc\*'edure termine son interpr\*'etation avec une indication <<retour>> 
  1481. au lieu d'une indication <<arr\* | t>>. En LDS/PR, l'\*'enonc\*'e de retour 
  1482. est repr\*'esent\*'e par le mot\(hycl\*'e RETURN; 
  1483. .LP
  1484.     \(em
  1485.      en LDS/GR, le symbole de d\*'ebut de proc\*'edure est l\*'eg\*`erement 
  1486. diff\*'erent du symbole de d\*'ebut de processus. 
  1487. .PP
  1488. Les symboles de d\*'ebut et de retour de proc\*'edure sont indiqu\*'es 
  1489. dans le r\*'esum\*'e du LDS/GR. 
  1490. .PP
  1491. Une proc\*'edure peut utiliser la construction avec branchements mais
  1492. seulement pour se r\*'ef\*'erer \*`a une \*'etiquette interne. Un branchement 
  1493. peut ne pas \* | tre utilis\*'e ou \* | tre utilis\*'e pour acc\*'eder 
  1494. \*`a une proc\*'edure de l'ext\*'erieur ou quitter celle\(hyci. 
  1495. .PP
  1496. En LDS/GR, une d\*'efinition de proc\*'edure est repr\*'esent\*'ee par un
  1497. diagramme de proc\*'edure tr\*`es similaire au diagramme de processus. 
  1498. Le diagramme de proc\*'edure comprend les \*'el\*'ements suivants: 
  1499. .RT
  1500. .LP
  1501.     \(em
  1502.     un symbole de cadre facultatif: symbole de forme
  1503. rectangulaire contenant tous les autres symboles;
  1504. .LP
  1505.     \(em
  1506.      l'en\(hyt\* | te de proc\*'edure: le mot\(hycl\*'e PROC\o"E\(aa"DURE 
  1507. suivi du nom de la proc\*'edure et de la sp\*'ecification des param\*`etres 
  1508. formels de proc\*'edure. 
  1509. G\*'en\*'eralement, l'en\(hyt\* | te de proc\*'edure est plac\*'e dans 
  1510. l'angle sup\*'erieur gauche du cadre ou, s'il n'y a pas de cadre, dans 
  1511. l'angle sup\*'erieur gauche du support sur lequel le diagramme est trac\*'e; 
  1512. .LP
  1513.     \(em
  1514.     une num\*'erotation de pages facultatives (\*`a placer dans
  1515. l'angle sup\*'erieur droit);
  1516. .LP
  1517.     \(em
  1518.     des symboles de texte: dans le cas d'un diagramme de
  1519. proc\*'edure, un symbole de texte peut \* | tre utilis\*'e pour contenir la
  1520. sp\*'ecification de d\*'efinition de param\*`etres formels, de donn\*'ees et de
  1521. variables;
  1522. .LP
  1523.     \(em
  1524.     r\*'ef\*'erences de proc\*'edure: symboles de proc\*'edure, contenant
  1525. chacun un nom de proc\*'edure repr\*'esentant une proc\*'edure locale d\*'efinie 
  1526. s\*'epar\*'ement;
  1527. .bp
  1528. .LP
  1529.     \(em
  1530.     des diagrammes de proc\*'edure: permettant de d\*'efinir
  1531. directement les proc\*'edures locales;
  1532. .LP
  1533.     \(em
  1534.      la zone graphique de proc\*'edure: sp\*'ecification du comportement de 
  1535. la proc\*'edure pour ce qui est du d\*'ebut, des \*'etats, des entr\*'ees, 
  1536. des sorties, des t\* | ches... et des arcs orient\*'es. 
  1537. .PP
  1538. Dans la figure D\(hy3.9.2, on trouvera un exemple de d\*'efinition de
  1539. proc\*'edure en LDS/GR. La proc\*'edure portant la r\*'ef\*'erence <<TERM\d\\u(emP>> 
  1540. dans 
  1541. l'exemple est locale \*`a la proc\*'edure d'appel.
  1542. .PP
  1543. Comme indiqu\*'e dans le cas des diagrammes de proc\*'edure (\(sc\ D.3.8), si
  1544. une seule page ne suffit pas \*`a contenir un diagramme de proc\*'edure, 
  1545. celui\(hyci 
  1546. peut \* | tre repr\*'esent\*'e sur plusieurs pages, avec r\*'ep\*'etition 
  1547. du symbole de cadre \*`a la suite de l'en\(hyt\* | te et du num\*'ero de 
  1548. page. 
  1549. .RT
  1550. .LP
  1551. .rs
  1552. .sp 47P
  1553. .ad r
  1554. \fBFigure D\(hy3.9.2, p. 42\fR 
  1555. .sp 1P
  1556. .RT
  1557. .ad b
  1558. .RT
  1559. .LP
  1560. .bp
  1561. .sp 1P
  1562. .LP
  1563. D.3.9.2
  1564.     \fIAppel de proc\*'edure\fR 
  1565. .sp 9p
  1566. .RT
  1567. .PP
  1568. Les appels de proc\*'edure peuvent se produire chaque fois qu'une
  1569. t\* | che et autoris\*'ee dans un graphe de processus ou de proc\*'edure. 
  1570. En un sens, 
  1571. une proc\*'edure peut \* | tre interpr\*'et\*'ee comme une t\* | che, avec 
  1572. les exceptions 
  1573. suivantes:
  1574. .RT
  1575. .LP
  1576.     1)
  1577.      une proc\*'edure peut contenir des \*'etats et, si tel est le cas, recevoir 
  1578. des signaux; 
  1579. .LP
  1580.     2)
  1581.     une proc\*'edure peut \*'emettre des signaux. L'instance de
  1582. processus d'origine est celle qui a appel\*'e la proc\*'edure.
  1583. .PP
  1584. Lorsqu'une proc\*'edure est appel\*'ee, son environnement est cr\*'e\*'e et
  1585. l'interpr\*'etation de la proc\*'edure commence. Elle se poursuit jusqu'\*`a 
  1586. ce que 
  1587. l'on ait atteint l'indication RETURN (retour). Pendant l'interpr\*'etation 
  1588. de la proc\*'edure, tous les signaux adress\*'es au processus sont soit 
  1589. mis en r\*'eserve 
  1590. implicitement soit trait\*'es explicitement par la proc\*'edure. La proc\*'edure 
  1591. n'a pas sa propre file d'attente mais utilise celle du processus qui l'a 
  1592. appel\*'ee. 
  1593. .PP
  1594. En LDS/PR, un appel de proc\*'edure est repr\*'esent\*'e par le mot\(hycl\*'e 
  1595. CALL 
  1596. suivi de l'identificateur de proc\*'edure et de la liste de param\*`etres 
  1597. r\*'eels mise entre parenth\*`eses. Si un param\*`etre n'est pas donn\*'e, 
  1598. il convient de l'indiquer par deux virgules cons\*'ecutives. Dans ce cas, 
  1599. le param\*`etre formel correspondant a la valeur <<ind\*'efinie>>. A noter 
  1600. aussi que la d\*'eclaration de IN ou IN/OUT est faite dans la d\*'efinition 
  1601. de proc\*'edure, de sorte qu'elle ne doit pas \* | tre 
  1602. r\*'ep\*'et\*'ee par l'\*'enonc\*'e d'appel. On trouvera certains exemples 
  1603. d'appel en LDS/PR dans la figure\ D\(hy3.9.3. 
  1604. .RT
  1605. .LP
  1606. .sp 2
  1607. .rs
  1608. .sp 8P
  1609. .ad r
  1610. \fBFigure D\(hy3.9.3 [T23.100] \ \ 
  1611. (\*`a traiter comme tableau MEP), p. 43\fR 
  1612. .sp 1P
  1613. .RT
  1614. .ad b
  1615. .RT
  1616. .LP
  1617. .sp 3
  1618. .PP
  1619. En LDS/GR, un appel de proc\*'edure est repr\*'esent\*'e \*`a l'aide d'un
  1620. symbole d'appel de proc\*'edure contenant le nom de proc\*'edure et la 
  1621. liste des 
  1622. param\*`etres r\*'eels mise entre paranth\*`eses. On trouvera un exemple 
  1623. d'appel en 
  1624. LDS/GR dans la figure\ D\(hy3.9.2.
  1625. .LP
  1626. .rs
  1627. .sp 13P
  1628. .ad r
  1629. Blanc
  1630. .ad b
  1631. .RT
  1632. .LP
  1633. .bp
  1634.